什么是Compass
简单的说 Compass 是 Sass 的工具库,有点像 Javascript 和 JQuery 的关系。学会了 Compass 能大大提升 CSS 的开放效率。若不清楚什么是 Sass ,可移步阅读 SASS 用法指南
安装
Compass 是用 Ruby 语言开发的,所以安装它之前,必须安装 Ruby 。在命名行下输入
1 | $ gem install compass |
项目初始化
要创建一个你的 Compass 项目,假定它的名字叫做 testCompass,那么在命令行键入
1 | $ compass create testCompass |
当前目录就会生成 testCompass 的子目录。进入到该目录,你会看到一个 config.rb
文件,这是你项目的配置文件。还有两个子目录 sass
和 stylesheets
前者存放 Sass 源文件,后者存放编译后的 css 文件。
编译
要在网站上使用,必须将 scss 后缀的文件编译成 css 文件。编译命令如下
1 | $ compass compile |
该命令在项目根目录下运行,会将 sass 子目录中的 scss 文件,编译成 css 文件,保存在 stylesheets 子目录中。
默认状态下,编译出来的 css 文件带有大量的注释。但在生产环境需要压缩后的 css 文件,这时要使用 --output-style
参数
1 | $ compass compile --output-style compressed |
Compass 只编译发生变动的文件,如果你要重新编译未变动的文件,需要使用 --force
参数
1 | $ compass compile --force |
除了使用命令行参数,还可以在配置文件 config.rb
中指定编译模式。
1 | output_style = :expanded |
:expanded
模式表示编译后保留原格式,其他值还包括 :nested
:compact
和 :compressed
也可以通过指定 environment 的值( :production
或 :development
),智能判断编译模式。
1 | environment = :development |
在命令行模式下,除了一次性编译命令,compass 还有自动编译命令
1 | $ compass watch |
运行该命令后,只要 scss 文件发生变化,就会被自动编译成 css 文件。按 Ctrl + C
退出监听。
有官更多 compass 的用法,请到官网查阅
注意:在 sass 目录下 若文件以 _
开头,如 _mixin.scss, _variables.scss, _icons.scss 则编译时不会生成 css 文件到 stylesheets 目录。这特性可结合 @import
使用。
使用
Compass 采用模块结构,不同模块提供不同的功能。如 reset, css3, layout, typography, utilities 这些模块。具体怎么用,可参考官方文档
下面给出一个示例代码,简单展示下 Compass 的用法
1 | //引入 compass 也可指定引入某模块如 @import "compass/reset"; |
其中 _icons.scss
的代码如下
1 | //为 true 则样式中加上图片宽高 |
结语
通过 sass 和 less 等这种 css 预处理器,可以让我们更高效多书写样式。另外要提一下的就是 postcss 相关介绍和教程可跳阅读 http://www.w3cplus.com/blog/tags/516.html